package com.sqlcheck.service;

import com.sqlcheck.model.SqlStatement;

import java.nio.file.Path;
import java.util.List;

public interface CodeAnalysisService {

    /**
     * 综合分析项目代码，提取所有SQL语句
     * 
     * @param projectPath 项目根目录路径
     * @return SQL语句列表
     */
    List<SqlStatement> analyzeProject(Path projectPath);

    /**
     * 分析指定目录下的代码文件
     * 
     * @param directoryPath  目录路径
     * @param includeSubDirs 是否包含子目录
     * @return SQL语句列表
     */
    List<SqlStatement> analyzeDirectory(Path directoryPath, boolean includeSubDirs);

    /**
     * 分析单个文件
     * 
     * @param filePath 文件路径
     * @return SQL语句列表
     */
    List<SqlStatement> analyzeFile(Path filePath);
}